extends

Доступность

Flash Player 6.

Синтаксис

class className extends otherClassName {}
interface interfaceName extends otherInterfaceName {}

Замечание: Для использования этого ключевого слова, вы должны указать ActionScript 2.0 и Flash Player 6 или более новые во вкладке Flash диалогового окна Publish Settings вашего файла FLA. Это ключевое слово поддерживается только в случае использования во внешних скриптовых файлах, но не в скриптах, написанных в панели Actions.

Параметры

className Имя определяемого класса.

otherClassName Имя класса, на котором основывается класс className.

interfaceName Имя определяемого интерфейса.

otherInterfaceName Имя интерфейса, на котором основывается интерфейс interfaceName.

Описание

Ключевое слово; определяет класс, как подкласс другого класса; последний является надклассом. Подкласс наследует все методы, свойства, функции и т.д., которые определены в надклассе.

Для получения дополнительной информации, смотрите "Создание подклассов" в Использовании ActionScript во Flash. Интерфейсы могут также быть расширены с использованием ключевого слова extends. Интерфейс, который расширен другим интерфейсом включает все объявленные в исходном интерфейсе методы.

Пример

В следующем примере класс Car расширяет класс Vehicle, следовательно все его методы, свойства и функции наследуются. Если ваш скрипт задает значение для объекта Car, то могут быть использованы методы обоих классов Car и Vehicle.

Следующий пример показывает содержание файла, названного Vehicle.as, в котором определен класс Vehicle:

class Vehicle {
  var numDoors:Number;
  var color:String;
  function Vehicle(param_numDoors:Number, param_color:String) {
    this.numDoors = param_numDoors;
    this.color = param_color;
  }
  function start():Void {
    trace("[Vehicle] стартовала");
  }
  function stop():Void {
    trace("[Vehicle] остановилась");
  }
}

Следующий пример представляет второй файл AS, названный Car.as, находящийся в той же папке. Этот класс расширяет класс Vehicle, делая в нем три изменения. Во-первых, класс Car добавляет переменную fullSizeSpare для отслеживания того, имеет ли объект "машина" запасную шину. Во-вторых, он добавляет новый метод, специфичный для машин, activateCarAlarm(), который активирует противоугонную сигнализацию. В-третьих, он подменяет функцию stop() для добавления факта, что класс Car использует противоблокировочную тормозную систему для остановки.

class Car extends Vehicle {
  var fullSizeSpare:Boolean;
  function Car(param_numDoors:Number, param_color:String, param_fullSizeSpare:Boolean) {
    this.numDoors = param_numDoors;
    this.color = param_color;
    this.fullSizeSpare = param_fullSizeSpare;
  }
  function activateCarAlarm():Void {
    trace("[Car] активация противоугонной сигнализации");
  }
  function stop():Void {
    trace("[Car] остановилась при помощи противоблокировочной тормозной системы");
  }
}

Следующий пример задает значение объекту Car, вызывает метод, определенный классом Vehicle (start()), затем вызывает метод, подмененный классом Car (stop()), и в заключении вызывает метод класса Car (activateCarAlarm()):

var myNewCar:Car = new Car(2, "Red", true);
myNewCar.start(); // в окне output: [Vehicle] стартовала
myNewCar.stop(); // в окне output: [Car] остановилась при помощи противоблокировочной тормозной системы
myNewCar.activateCarAlarm(); // в окне output: [Car] активация противоугонной сигнализации

См. также

class, implements, interface